﻿using System;
using System.Collections;
using System.Collections.Generic;
using EnvDTE;

namespace HQLAddin.Tests.Configuration.Util
{
	public class ProjectItemList : List<ProjectItem>, ProjectItems
	{
		public ProjectItem Item(object index)
		{
			return this[(int) index];
		}

		IEnumerator ProjectItems.GetEnumerator()
		{
			return GetEnumerator();
		}

		public ProjectItem AddFromFile(string FileName)
		{
			throw new NotImplementedException();
		}

		public ProjectItem AddFromTemplate(string FileName, string Name)
		{
			throw new NotImplementedException();
		}

		public ProjectItem AddFromDirectory(string Directory)
		{
			throw new NotImplementedException();
		}

		public ProjectItem AddFolder(string Name, string Kind)
		{
			throw new NotImplementedException();
		}

		public ProjectItem AddFromFileCopy(string FilePath)
		{
			throw new NotImplementedException();
		}

		public object Parent
		{
			get { throw new NotImplementedException(); }
		}

		public DTE DTE
		{
			get { throw new NotImplementedException(); }
		}

		public string Kind
		{
			get { throw new NotImplementedException(); }
		}

		public Project ContainingProject
		{
			get { throw new NotImplementedException(); }
		}
	}
	/// <summary>
	/// Mocked project list. I can mock this interface, even if i do mock.Setup(m => m.GetEnumerator()).Returns(..)
	/// </summary>
	public class ProjectsList : List<Project>, Projects
	{
		public Project Item(object index)
		{
			throw new NotImplementedException();
		}

		public IEnumerator GetEnumerator()
		{
			return base.GetEnumerator();
		}

		public ProjectItem AddFromFile(string FileName)
		{
			throw new NotImplementedException();
		}

		public ProjectItem AddFromTemplate(string FileName, string Name)
		{
			throw new NotImplementedException();
		}

		public ProjectItem AddFromDirectory(string Directory)
		{
			throw new NotImplementedException();
		}

		public ProjectItem AddFolder(string Name, string Kind)
		{
			throw new NotImplementedException();
		}

		public ProjectItem AddFromFileCopy(string FilePath)
		{
			throw new NotImplementedException();
		}

		IEnumerator Projects.GetEnumerator()
		{
			return this.GetEnumerator();
		}

		public DTE Parent
		{
			get { throw new NotImplementedException(); }
		}

		public DTE DTE
		{
			get { throw new NotImplementedException(); }
		}

		public Properties Properties
		{
			get { throw new NotImplementedException(); }
		}

		public string Kind
		{
			get { throw new NotImplementedException(); }
		}

		public Project ContainingProject
		{
			get { throw new NotImplementedException(); }
		}
	}
}